// ArrayBuffer 和 TypeArray 都是 ECMAScript 规范中的一部分
// 在浏览器环境下，还有其他二进制对象（Blob）
// Blob 由一个可选的字符串 type（通常是 MIME 类型）和 blobParts 组成

// new Blob(blobParts, options)
// blobParts 是 Blob/BufferSource/String 类型的值的数组。
// options 可选对象
// - type: Blob 类型，MIME，例如 image/png
// - endings: 字符串，指定如何处理行结束符
//   - 'transparent': 行结束符会被当作 \r\n 处理
//   - 'native': 行结束符会被当作 \n 处理

// 从字符串中创建
let blob = new Blob(['你好', { type: 'text/plain', endings: 'native' }])
console.log(blob)

// 类型化数组
let hello = new Uint8Array([72, 101, 108, 108, 111]); // 二进制格式的 "hello"

blob = new Blob([hello, ' ', 'world'], { type: 'text/plain' })
console.log(blob)
let reader = new FileReader()
reader.readAsDataURL(blob)

reader.onload = function () {
  console.log(reader.result);
}

// 图片转blob